e61a220dd6b25dbe773d0e708e83ffc0ea45dd19,test/se/hiflyer/fettle/TestTransitionActions.java,TestTransitionActions,actionsAreRunOnTransitions,#,10

Before Change


	public void actionsAreRunOnTransitions() {
		StateMachine<States> machine = StateMachine.createStateMachineOfEnum(States.class, States.INITIAL);

		Condition condition1 = mock(Condition.class);
		stubReturn(false).on(condition1).isSatisfied();

		Transition<States> initToOne = new BasicTransition<States>(States.INITIAL, States.ONE, condition1);
		machine.addTransition(initToOne);

		Transition<States> oneToTwo = new BasicTransition<States>(States.ONE, States.TWO, condition1);
		machine.addTransition(oneToTwo);
		Transition<States> twoToOne = new BasicTransition<States>(States.TWO, States.ONE, condition1);
		machine.addTransition(twoToOne);

		Runnable transitionAction1 = mock(Runnable.class);
		machine.addTransitionAction(initToOne, transitionAction1);

		Runnable transitionAction2 = mock(Runnable.class);
		machine.addTransitionAction(twoToOne, transitionAction2);

		machine.update();

		verifyNever().on(transitionAction1).run();
		verifyNever().on(transitionAction2).run();

		stubReturn(true).on(condition1).isSatisfied();

		machine.update();

		verifyOnce().on(transitionAction1).run();
		verifyNever().on(transitionAction2).run();


		machine.update();

		verifyOnce().on(transitionAction1).run();
		verifyNever().on(transitionAction2).run();

After Change



	@Test
	public void actionsAreRunOnTransitions() {
		StateMachine<States> machine = StateMachine.createStateMachineOfEnum(States.class, States.INITIAL);

		machine.addTransition(States.INITIAL, States.ONE, BasicConditions.ALWAYS, "");
		Runnable transitionAction1 = mock(Runnable.class);
		machine.addTransition(States.ONE, States.TWO, BasicConditions.ALWAYS, "", Lists.newArrayList(transitionAction1));
		Runnable transitionAction2 = mock(Runnable.class);
		machine.addTransition(States.TWO, States.ONE, BasicConditions.ALWAYS, "", Lists.newArrayList(transitionAction2));


		machine.fireEvent("");

		verifyNever().on(transitionAction1).run();
		verifyNever().on(transitionAction2).run();

		machine.fireEvent("");

		verifyOnce().on(transitionAction1).run();
		verifyNever().on(transitionAction2).run();

		machine.fireEvent("foo");

		verifyOnce().on(transitionAction1).run();
		verifyNever().on(transitionAction2).run();

		machine.fireEvent("");

		verifyOnce().on(transitionAction1).run();
		verifyOnce().on(transitionAction2).run();